package dxn.nl.file.service.impl;

import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import dxn.nl.file.biz.dao.UserExportColumnDao;
import dxn.nl.file.service.CsUserExportColumnService;
import dxn.nl.file.biz.po.UserExportColumnPo;
import dxn.nl.file.biz.vo.CsUserExportTemplateVo;
import jakarta.annotation.Resource;
import org.springframework.stereotype.Service;

import java.util.HashMap;
import java.util.List;

@Service
public class CsUserExportColumnServiceImpl implements CsUserExportColumnService {

    @Resource
    private UserExportColumnDao userExportColumnDao;

    @Override
    public String saveExportTemplate(UserExportColumnPo po) {
        LambdaQueryWrapper<UserExportColumnPo> lambdaQueryWrapper = new LambdaQueryWrapper<>();
        lambdaQueryWrapper.eq(UserExportColumnPo::getUserCode, po.getUserCode())
                .eq(UserExportColumnPo::getModeCode, po.getModeCode())
                .eq(UserExportColumnPo::getTemplateName, po.getTemplateName());

        UserExportColumnPo existPo = userExportColumnDao.selectOne(lambdaQueryWrapper);
        if(existPo != null)
        {
            po.setId(existPo.getId());
            userExportColumnDao.updateById(po);
        }
        else
        {
            userExportColumnDao.insert(po);
        }
        return null;
    }

    @Override
    public String deleteExportTemplate(CsUserExportTemplateVo vo) {
        LambdaQueryWrapper<UserExportColumnPo> lambdaQueryWrapper = new LambdaQueryWrapper<>();
        lambdaQueryWrapper.eq(UserExportColumnPo::getUserCode, vo.getUserCode())
                .eq(UserExportColumnPo::getModeCode, vo.getModeCode())
                .eq(UserExportColumnPo::getTemplateName, vo.getColumnTemplateName());
        userExportColumnDao.delete(lambdaQueryWrapper);
        return null;
    }

    @Override
    public List<String> selectUserExportTemplateName(String orgCode, String modeCode, String userCode) {
        //return csUserExportColumnDao.selectUserExportTemplateName(orgCode,modeCode,userCode);
        return null;
    }

    @Override
    public List<UserExportColumnPo> selectAllUserExportTemplate(String orgCode, String modeCode, String userCode) {
        //return csUserExportColumnDao.selectAllUserExportTemplate(orgCode,modeCode,userCode);
        return null;
    }

    @Override
    public UserExportColumnPo selectExportTemplateByUser(CsUserExportTemplateVo vo) {
//        CsUserExportColumnPo po = csUserExportColumnDao.selectExportTemplateByUser(vo);
//
//        if(po == null)
//        {
//            po = new CsUserExportColumnPo();
//        }

//        if(po.getColumns() == null)
//        {
//            po.setColumns(new ArrayList<>());
//        }
//
//        HashMap<String,String> map = selectAllModeExportColumn(vo.getModeCode());
//
//        List<CsBaseDataDto> list= new ArrayList<>();
//
//        for (Map.Entry<String, String> entry : map.entrySet()) {
//
//            CsBaseDataDto csColumnDto = new CsBaseDataDto();
//            csColumnDto.setCode(entry.getValue());
//            csColumnDto.setName(entry.getKey());
//
//            for(CsBaseDataDto existdto : po.getColumns())
//            {
//                if(entry.getKey().equals(existdto.getCode()))
//                {
//                    csColumnDto.setCheck(true);
//                }
//            }
//
//            list.add(csColumnDto);
//        }
//
//        po.setColumns(list);

        return null;
    }

    @Override
    public HashMap<String,String> selectAllModeExportColumn(String modeCode) {
        HashMap<String,String> resultMap = new HashMap<>();
        resultMap.put("deCode", "编号");
        resultMap.put("name", "名称");
        return resultMap;
    }
}
